package com.yonyou.rabbitmq.provider.basic.direct;

import com.rabbitmq.client.*;
import com.yonyou.rabbitmq.utils.RabbitmqUtils;

import java.io.IOException;

public class Provider {
    public static void main(String[] args) {
        Connection connection = null;
        Channel channel = null;

        try {
            //获取连接对象
            connection = RabbitmqUtils.getConnection();
            //获取通道
            if (connection != null) {
                channel = connection.createChannel();
                //通道绑定对应消息队列
                /*
                 * 参数1 queue：队列名称(不存在自动创建)
                 * 参数2 durable：用来定义队列特性是否需要持久化(为true该队列将在服务器重启后保留下来，持久化到硬盘中)
                 * 参数3 exclusive：是否独占队列(为true仅限此连接)
                 * 参数4 autoDelete：是否在消费完成后自动删除队列
                 * 参数5 arguments：队列的其他属性（构造参数）
                 * */
                channel.queueDeclare("hello",false,false,false,null);

                //发布消息
                /*
                 * 参数1 exchange：要将消息发布到的交换机
                 * 餐数2 routingKey：路由键，指定队列
                 * 参数3 props：消息的其他属性
                 * 参数4 body：消息具体内容
                 * */
                String message = "hello rabbitmq";
                channel.basicPublish("","hello",null,message.getBytes());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            System.out.println("生产者发布消息完成......");
            RabbitmqUtils.close(channel,connection);
        }
    }
}
